#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <queue>
#include <map>
#include <set>

using namespace std;




//void print(map<string, int>& mp) 
//{
//	for (auto& x : mp)
//	{
//		cout << x.first << " " << x.second << endl;
//	}
//}
//
//void fun()
//{
//	string s;
//	map<string, int> mp;
//	for (int i = 0; i < 5; i++)
//	{
//		cin >> s;
//		mp[s]++;
//	}
//
//	print(mp);
//}
//int main()
//{
//	fun();
//
//	map<string, int> mp;
//	mp.insert({ "zhangsan",1 });
//	mp.insert({ "lisi",2 });
//	mp.insert({ "wangwu",3 });
//	print(mp);
//	cout << mp["wangwu"] << endl;
//	mp["wangwu"] = 110;
//	cout << mp["wangwu"] << endl;
//	mp.erase("wangwu");
//	print(mp);
//	return 0;
//}

//int a[] = { 10, 60, 20, 70, 80, 30, 90, 40, 100, 50 };
//int main()
//{
//	set<int> mp;
//	for (auto x : a) {
//		mp.insert(x);
//	}
//
//	for (auto x : mp) {
//		cout << x << " ";
//	}
//	cout << endl;
//
//	if (mp.count(1)) cout << "1" << endl;
//	if (mp.count(10)) cout << "10" << endl;
//	if (mp.count(30)) cout << "30" << endl;
//	if (mp.count(99)) cout << "99" << endl;
//
//	mp.erase(10);
//	mp.erase(30);
//	if (mp.count(10)) cout << "10" << endl;
//	else cout << "no:10" << endl;
//	if (mp.count(30)) cout << "30" << endl;
//	else cout << "no:30" << endl;
//
//	auto x = mp.lower_bound(10);
//	auto y = mp.lower_bound(30);
//	cout << *x << " " << *y << endl;
//	return 0;
//}

//int a[10] = { 1, 41, 23, 10, 11, 2, -1, 99, 14, 0 };
//void test2() {
//	priority_queue <int> heap;
//	for (int i = 0; i < 10; i++) {
//		heap.push(a[i]);
//	}
//	while (heap.size()) {
//		cout << heap.top() << " ";
//		heap.pop();
//	}
//}
//int main() {
//	test2();
//	return 0;
//}

